package cn.iocoder.yudao.module.of.controller.admin.meetingInfo.vo;

import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO;
import cn.iocoder.yudao.module.of.controller.admin.meetingminutes.vo.MeetingMinutesRespVO;
import cn.iocoder.yudao.module.of.controller.admin.meetingpart.vo.MeetingPartRespVO;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 会议信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MeetingRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "5725")
    @ExcelProperty("主键")
    private Long id;

    @Schema(description = "会议名称", example = "张三")
    @ExcelProperty("会议名称")
    private String name;

    @Schema(description = "会议编号", example = "1")
    private  String code;

    @Schema(description = "会议类型 字典：of_meet_type", example = "1637")
    @ExcelProperty("会议类型 字典：of_meet_type")
    private Integer typeId;

    @Schema(description = "主持人ID", example = "22318")
    @ExcelProperty("主持人ID")
    private Long chairpersonId;

    @Schema(description = "主持人名称", example = "张三")
    @ExcelProperty("主持人名称")
    private String chairpersonName;

    @Schema(description = "参与者")
    @ExcelProperty("参与者")
    private String participants;

    @Schema(description = "参与者对象")
    private List<MeetingPartRespVO> participantList;

    @Schema(description = "会议开始时间")
    @ExcelProperty("会议开始时间")
    private LocalDateTime startTime;

    @Schema(description = "会议截止时间")
    @ExcelProperty("会议截止时间")
    private LocalDateTime endTime;

    @Schema(description = "时长")
    @ExcelProperty("时长")
    private Integer timeLong;

    @Schema(description = "会议地点")
    @ExcelProperty("会议地点")
    private String address;

    @Schema(description = "会议议程")
    @ExcelProperty("会议议程")
    private String agenda;

    @Schema(description = "会议附件")
    @ExcelProperty("会议附件")
    private String agendaAttachs;
    private List<FileDO> agendaAttachList;
    @Schema(description = "会议纪要附件")
    @ExcelProperty("会议纪要附件")
    private String minutesAttachs;

    private List<FileDO> minutesAttachList;
    @Schema(description = "优先级", example = "22496")
    @ExcelProperty("优先级")
    private Integer priorityId;

    @Schema(description = "优先级名称", example = "王五")
    @ExcelProperty("优先级名称")
    private String priorityName;

    @Schema(description = "附件ID")
    @ExcelProperty("附件ID")
    private String attachs;

    @Schema(description = "提前提醒时间点", example = "1")
    @ExcelProperty("提前提醒时间点")
    private Integer remindType;

    @Schema(description = "重复周期")
    @ExcelProperty("重复周期")
    private Integer repeatPeriod;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    /**
     *
     */

    @Schema(description = "创建人")
    private Long creator;


    @Schema(description = "主责部门", example = "20592")
    @ExcelProperty("主责部门")
    private Long mainRespDeptId;

    @Schema(description = "主任部门名称", example = "芋艿")
    @ExcelProperty("主任部门名称")
    private String mainRespDeptName;

    @Schema(description = "主责人员", example = "1716")
    @ExcelProperty("主责人员")
    private Long mainRespUserId;

    @Schema(description = "任务生成人", example = "1")
    private Long taskGenUserId;

    @Schema(description = "任务数", example = "1")
    private Integer taskNum;


    @Schema(description = "完成任务数据", example = "1")
    private Integer closedTaskNum;
    @Schema(description = "任务列表", example = "1")
    private List taskList;

    @Schema(description = "是否有任务", example = "1")
    private Integer isHaveTask;

    @Schema(description = "会议纪要列表", example = "{}")
    private List<MeetingMinutesRespVO> meetingMinutesList;

    /**
     * 是否可编辑
     */
    private Boolean isEdit;





}